package com.project.web.order.model.app.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 会员订单支付VO对象
 *
 * @Author: wyy
 * @Date: 2/2/21 10:48 PM
 */
@Data
@ApiModel("会员订单支付VO对象")
public class MbrOrderInfoVO {

    /**
     * 订单ID
     */
    @ApiModelProperty("订单ID")
    private Long mbrOrderId;

    /**
     * 订单类型 0：课程订单 1：商品订单
     */
    @ApiModelProperty("订单类型 0：课程订单 1：商品订单")
    private Integer orderType;

    /**
     * 公众号openId
     */
    @ApiModelProperty("公众号openId")
    private String openId;

    /**
     * 用户ID
     */
    @ApiModelProperty("用户Id")
    private String userId;

    /**
     * 课程类目Id
     */
    @ApiModelProperty("课程类目Id")
    private String courseCategoryId;

    /**
     * 商品Id
     */
    @ApiModelProperty("商品Id")
    private Long productId;

    /**
     * 实付金额
     */
    @ApiModelProperty("实付金额")
    private BigDecimal actualAmt;

    /**
     * 总金额
     */
    @ApiModelProperty("总金额")
    private BigDecimal totalAmt;

    /**
     * 订单号
     */
    @ApiModelProperty("订单号")
    private String orderNo;

    /**
     * 支付方式
     * 1：微信App支付
     * 2：支付宝App支付
     * 3:微信公众号支付
     */
    @ApiModelProperty("支付方式 1：微信App支付 2：支付宝App支付 3:微信公众号支付")
    private Integer payMode;

    /**
     * 订单状态
     * 1：未支付（已生成预支付ID)
     * 2：已取消（取消订单）
     * 3：支付成功（回调通知成功）
     * 4：支付失败（回调通知失败）
     * 5：订单退款
     */
    @ApiModelProperty("订单状态 1：未支付（已生成预支付ID)  2：已取消（取消订单） 3：支付成功（回调通知成功） 4：支付失败（回调通知失败） 5：订单退款")
    private Integer orderStatus;

    /**
     * 订单创建时间
     */
    @ApiModelProperty("订单创建时间")
    private Date createDate;

    /************* 商品字段 **************/
    /**
     * 商品名称
     */
    @ApiModelProperty("商品名称")
    private String productName;

    /**
     * 商品简介
     */
    @ApiModelProperty("商品简介")
    private String productBrief;

    /**
     * 商品封面
     */
    @ApiModelProperty("商品封面")
    private String productCover;

    /************* 课程类目字段 **************/
    /**
     * 课程类目名称
     */
    @ApiModelProperty("分类名称")
    private String categoryName;

    /**
     * 课程类目简介
     */
    @ApiModelProperty("课程简介")
    private String categoryBrief;

    /**
     * 课程类目封面
     */
    @ApiModelProperty("课程图片")
    private String categoryCover;

}
